FIG. 1 is a diagram showing a configuration of the OSGi framework. The OSGi framework is a service platform that operates on Java (registered trademark) Virtual Machines, and handles Java programs as plug-in modules, making it possible to dynamically add them to applications. The OSGi framework is developed and defined by the OSGi Alliance (Non-Patent Literature 1).
In FIG. 1, an OSGi framework 13 is implemented as a Java application on an OS (Operating System) 11 that runs on a host 10 and a Java VM 12 that runs under the control of the OS 11. The OSGi framework 13 publishes a service registry 131, which is an interface for registering with the OSGi platform 13 services provided by Java modules. A Java module that is compliant with OSGi framework specifications and configured to enable registration with the OSGi framework 13 (to operate in the OSGi framework) is referred to as an OSGi bundle. An OSGi bundle is embodied by Java classes (a group of Java classes, or Java packages, or Java packages comprising a plurality of Java classes), and related configuration files, etc. Further, a service provided by an OSGi bundle is referred to as an OSGi service. An OSGi service is embodied by Java classes.
By way of example, let it be assumed that an OSGi bundleA 14 is already running in the OSGi framework 13. By using the OSGi framework 13, the Java VM 12 is able to add an OSGi bundleB 15, which cooperates with the OSGi bundleA 14, to an application without rebooting the OSGi bundleA 14.
The term cooperate as used above refers to such operations as the OSGi bundleA 14 calling a method that the OSGi bundleB 15 has, the OSGi bundleB 15 calling a method that the OSGi bundleA 14 has, sharing data between the two bundles, and so forth.
Cooperation between OSGi bundles is carried out via the service registry 131 provided by the OSGi framework 13. By way of example, to use a functionB 151 (method (class)) that the OSGi bundleB 15 is equipped with from the OSGi bundleA 14, the OSGi bundleB 15 is registered with the service registry 131 by issuing a predetermined command.
The functionB of the OSGi bundleB 15 registered with the service registry 131 is published on the service registry 131 as an OSGi ServiceB 132. The OSGi bundleA 14 is able to obtain the OSGi ServiceB 132 from the service registry 131 and execute a method corresponding to (included in) the functionB 151.
On the other hand, to use the function 151 that the OSGi bundleB 15 is equipped with from outside of the host 10, a communications interface for that purpose must be provided within the OSGi bundleB 15. By way of example, to use the function 151 from a client terminal 20 using HTTP (Hyper Text Transfer Protocol), a web API server unit 152 equipped with a web API server function must be provided within the OSGi bundleB 15.
The term web API server is used above to refer generally to interfaces for executing applications via a network using HTTP and obtaining the results thereof, e.g., CGI (Common Gateway Interface), as well as web server functions for that purpose. Specific implementation means are by no means limited to CGI, and any implementation method may be used so long as it accepts requests via HTTP and returns the execution results thereof as an HTTP response.